<?php

namespace app\shop\controller;

use app\common\model\shop\CurrencyModel;
use think\admin\Controller;
use think\admin\helper\QueryHelper;

/**
 * 币制管理
 * @class Currency
 * @package app\shop\controller
 * @author shirukun
 * @date 2024/11/4
 */
class Currency extends Controller
{

    /**
     * 默认检测登陆后台用户
     *
     * @var bool
     */
    public $check_user = false;

    /**
     * 币制管理
     * @auth true
     * @menu true
     */
    public function index()
    {
        CurrencyModel::mQuery()->layTable(function () {
            $this->title = lang('币制管理');
        }, function (QueryHelper $query) {
            $this->check_account = false;
            // 数据列表搜索过滤
            $query->equal('status,abbreviation,symbol')->like('currency_name,currency_name_en')->dateBetween('create_at');
        });
    }


    /**
     * 添加
     * @auth true
     */
    public function add()
    {
        CurrencyModel::mForm('form');
    }

    /**
     * 编辑
     * @auth true
     */
    public function edit()
    {
        CurrencyModel::mForm('form');
    }


    /**
     * 表单数据处理
     * @param array $data
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    protected function _form_filter(array &$data)
    {
        if ($this->request->isPost()) {
            // 添加订单
            $this->_vali([
//                'company_id.require' => lang('请选择公司'),
                'currency_name.require' => lang('请填写名称'),
                'currency_name.max:50' => lang('名称最大长度50'),
                'currency_name_en.require' => lang('请填写英文名称'),
                'currency_name_en.max:50' => lang('英文名称最大长度50'),
                'abbreviation.require' => lang('请填写缩写'),
                'abbreviation.max:20' => lang('缩写最大长度20'),
                'exchange_rate.require' => lang('请填写汇率'),
                'exchange_rate.max:14' => lang('汇率最大长度14'),
                'exchange_rate.float' => lang('汇率为浮点数'),
                'desc.max:50' => lang('描述最大长度50'),
            ]);
//            halt($data);
            if(!empty($data['is_default'])){
                CurrencyModel::where(['is_default'=>1])->update(['is_default'=>0]);
            }
        }
    }

    /**
     * 删除
     * @auth true
     */
    public function remove()
    {
        CurrencyModel::mDelete();
    }


    /**
     * 修改币制状态
     * @auth true
     */
    public function state()
    {
        CurrencyModel::mSave($this->_vali([
            'status.in:0,1'  => '状态值范围异常',
            'status.require' => '状态值不能为空',
        ]));
    }

}